;;;; package.lisp

(defpackage #:boxes/keymap/key
  (:use #:cl)
  (:nicknames #:key)
  (:export #:normalize-key
	   #:ensure-normalized-key
	   #:key
	   #:key=))

(defpackage #:boxes/keymap
  (:nicknames #:keymap)
  (:use #:cl)
  (:import-from #:boxes/keymap/key
		#:key=
		#:ensure-normalized-key)
  (:export #:make-keymap
           #:parents
           #:binding
           #:own-keys
           #:all-keys
           #:key-bound-p
           #:ownp
           #:inheritedp
	   #:key-source
           #:add-binding
           #:remove-binding
	   #:install
	   #:*global-keymap*))

;;; Auxiliary low-level package not intended to be used directly
(defpackage #:boxes/keymap/global-keymap
  (:nicknames #:global-keymap)
  (:use #:cl)
  (:import-from #:boxes/keymap/key
		#:ensure-normalized-key)
  (:export #:add-binding
           #:remove-binding
	   #:keys
           #:binding
	   #:clear
	   #:sync))

